package com.lancoo.cvas.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * 教学班
 *
 * @author liufeng
 * @email 1037383243@qq.com
 * @date 2023-12-04 11:54:00
 */
@Data
@TableName("teaching_class")
@Accessors(chain = true)
@ApiModel("教学班信息")
public class TeachingClass implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 教学班id
     */
    @TableId(value = "teaching_class_id", type = IdType.AUTO)
    @ApiModelProperty("教学班id")
    private Long teachingClassId;
    /**
     * 任务id
     */
    @ApiModelProperty("任务id")
    private Integer taskId;
    /**
     * 行政班id
     */
    @ApiModelProperty("行政班id")
    private String classId;
    /**
     * 教学班名称
     */
    @ApiModelProperty("教学班名称")
    private String teachingClassName;
    /**
     * 行政班名称
     */
    @ApiModelProperty("行政班名称")
    private String className;
    /**
     * 教学计划id
     */
    @ApiModelProperty("教学计划id")
    private Long teachingPlanId;
    /**
     * 课程id||环节id
     */
    @ApiModelProperty("课程id||环节id")
    private Long courseId;

    /**
     * 课程名称
     */
    @ApiModelProperty("课程名称")
    private String courseName;
    /**
     * 专业id
     */
    @ApiModelProperty("专业id")
    private Long majorId;


    /**
     * 专业id
     */
    @ApiModelProperty("专业名称")
    private String majorName;

    /**
     * 教学班容量-学生人数
     */
    @ApiModelProperty("教学班容量")
    private Integer classNum;
    /**
     * 对应年级(基础平台使用)
     */
    @ApiModelProperty("年级id")
    private String gradeId;

    /**
     * 年级名称
     */
    @ApiModelProperty("年级名称")
    private String gradeName;
    /**
     * 0无需选课 1在线选课;2:分级教学 3:预选教学班
     */
    @ApiModelProperty("0无需选课 1在线选课;2:分级教学 3:预选教学班")
    private Integer teachingClassType;
    /**
     * 1课程  2环节
     */
    @ApiModelProperty("1课程  2环节")
    private Integer flag;
    /**
     * 教学班指定教室id
     */
    @ApiModelProperty("教学班指定教室id")
    private Long roomId;
    /**
     * 时段编码，0108代表每周第1天，第8节课
     */
    @ApiModelProperty("时段编码")
    private String timeCode;
    /**
     * 修读性质：1主修2辅修
     */
    @ApiModelProperty("修读性质")
    private Integer studyNature;
    /**
     * 所属校区
     */
    @ApiModelProperty("所属校区")
    private String campusId;
    /**
     * 所属校区名称
     */
    @ApiModelProperty("所属校区名称")
    private String campusName;
    /**
     * 1未锁定  2锁定
     */
    @ApiModelProperty("1未锁定  2锁定")
    private Integer isLocked;
    /**
     * 排课状态 1已排（正常）、2已排（未满足规则）、3已排（冲突）、4 待排
     */
    @ApiModelProperty("排课状态")
    private Integer scheduleState;
    /**
     * 拆班方式id
     */
    @ApiModelProperty("拆班方式id")
    private Integer subId;
    /**
     * 拆班方式
     */
    @ApiModelProperty("拆班方式")
    private String subName;
    /**
     * 分班标识 uuid
     */
    @ApiModelProperty("分班标识")
    private String uniqueShiftSign;
    /**
     * 1单数 2双数
     */
    @ApiModelProperty("1单数 2双数")
    private Integer isSingle;
    /**
     * 是否可用 0 为不可用-已取消 1为可用-正常开班  2为人数不足
     */
    @ApiModelProperty("是否可用")
    private Integer isEnable;
    /**
     * 设置状态 0 未完成 1 完成
     */
    @ApiModelProperty("设置状态")
    private Integer state;
    /**
     * 删除标识：
     * 0：未删除
     * 1：删除
     */
    @ApiModelProperty("删除标识")
    private Integer deleted;
    /**
     *
     */
    private String reserve;


    @ApiModelProperty("授课类型")
    @TableField(exist = false)
    private Integer hourType;

}
